package Day_0228.TCPIP;

/**
 * @author zxc
 * @date 2023/02/28 21:13
 **/
public class ThreeHandshakes {
    public static void main(String[] args) {
        /**
         * 谈一谈对于TCP三次握手的理解
         * ===》
         * 1.第一次握手 ：
         * （1）Client向服务端发送SYN帧，来主动打开Client端到服务端的传输通道;
         * （2）同时将该帧的SYN标志位置为1，同时发送 Client的序列号SN（seq = a）;
         * （3）Client端进入到SYN_SENT状态;
         *
         * 2.第二次握手 ：
         * （1）Server接收到Client端所发送的SYN帧，需要对其进行确认;
         * （2）Server端给Client端发送 SYN + ACK帧，同时将SYN标志位 && ACK标志位置为1;
         * （3）同时，发送 Server的确认序列号（ack = a + 1） && Server的序列号（seq = b）;
         * （4）Server端进入到SYN_RECV状态;
         *
         * 3.第三次握手 ：
         * （1）Client接收到Server端所发送的SYN + ACK帧，也需要对其进行确认;
         * （2）Client端给Server发送ACK帧，同时将该帧的ACK标志位置为1;
         * （3）同时，发送 Client的确认序列号（ack = b + 1）;
         * （4）客户端进入到ESTABLISHED状态;
         * ===》
         * 注意 ：Client端，可能会将ACK帧和第一帧要发送的数据，合并到一起发送给Server端。
         *
         * 4.最后 ：
         * （1）Server端接收到Client端所发送的ACK确认帧之后，Server端也进入到ESTABLISHED状态;
         *
         */
    }
}
